-
안드로이드 실행 파일 포맷 - dex (3)
연재 순서 첫번째 글: classes.dex 파일 포맷 (Header, String IDs) 두번째 글: classes.dex 파일 포맷 (Type IDs, Proto IDs) 세번째 글: classes.dex 파일 포맷 (Field IDs, Method IDs) 네번째 글: classes.dex 파일 포맷 (Class Defs, Map List) 1. classes.dex 추가 파일 포맷 이전 글에 이어 계속 설명을 이어갑니다. (5) Field IDs Field 정보 역시 헤더에 시작 위치와 개수가 저장되어 있다. print hdr['field_ids_size'] # 전체 Field 정보 개수 print hex(hdr['field_ids_off']) # 전체 Field 정보 시작 위치...
Kei Choi's profile imageKei Choi
2020-06-15 18:30
-
안드로이드 실행 파일 포맷 - dex (2)
연재 순서 첫번째 글: classes.dex 파일 포맷 (Header, String IDs) 두번째 글: classes.dex 파일 포맷 (Type IDs, Proto IDs) 세번째 글: classes.dex 파일 포맷 (Field IDs, Method IDs) 네번째 글: classes.dex 파일 포맷 (Class Defs, Map List) 1. classes.dex 추가 파일 포맷 이전 글에 이어 계속 설명을 이어갑니다. (3) Type IDs 다음은 classes.dex가 보유하고 있는 type들이다. 이 역시 헤더에 type 정보의 시작 위치와 개수가 저장되어 있다. print hdr['type_ids_size'] # 전체 Type 정보 개수 print hex(hdr['type_ids_off'])...
Kei Choi's profile imageKei Choi
2020-06-08 09:30
-
안드로이드 실행 파일 포맷 - dex (1)
연재 순서 첫번째 글: classes.dex 파일 포맷 (Header, String IDs) 두번째 글: classes.dex 파일 포맷 (Type IDs, Proto IDs) 세번째 글: classes.dex 파일 포맷 (Field IDs, Method IDs) 네번째 글: classes.dex 파일 포맷 (Class Defs, Map List) 1. classes.dex 파일 (1) APK 내부에는 classes.dex 파일명으로 Dalvik Executable File1이 존재한다. 이는 안드로이드에서는 실행 파일에 속하는 파일이다. import mmap fp = open('classes.dex', 'rb') mm = mmap.mmap(fp.fileno(), 0, access=mmap.ACCESS_READ) #--------------------------------------------------------------------- # TEST #--------------------------------------------------------------------- print mm [실행결과] <mmap.mmap object...
Kei Choi's profile imageKei Choi
2020-05-12 09:30
-
꼬리야.. 날 살려라 (HTML footer 강제 위치 변경)
개요 최근 루페(LUPE) 홈페이지 개편을 준비하고 있다. 누리랩 홈페이지와 루페 홈페이지가 너무 동떨어진 느낌을 주는 것 같아 가급적 누리랩 홈페이지와 동일한 모습을 갖추는 것을 목표로 하였다. 물론 개편할 때 이전에 부족했던 부분을 최대한 개선하는 것도 중요하다. 깨진 유리창 법칙 깨진 유리창 이론이라는 것이 있다. 미국 범죄학자인 제임스 윌슨과 조지 켈링이 1982년 3월에 공동 발표한 “깨진 유리창(Fixing Broken Windows: Restoring Order and Reducing Crime in Our Communities)”이라는 글에 처음으로 소개된 사회 무질서에 관한 이론으로 깨진 유리창...
Kei Choi's profile imageKei Choi
2020-04-27 00:00
-
우리도 스웩 (Swagger를 이용한 REST API 설계 및 검증)
REST API 개발로 전환하게 된 배경 누리랩은 주로 보안 관련 라이브러리를 개발해 판매하고 있다. 그러다보니 윈도우용 dll, 리눅스용 so 뿐만 아니라 업체 요구사항에 때문에 자바 연동을 위해 JNI를 개발해야 하는 경우도 많다. 심지어 업체 제품 운영환경까지 고려하다보면 솔라리스, AIX로 보안 라이브러리를 포팅하기도 한다. 그러다보니 라이브러리 개발에 있어 업체 운영환경에 영향을 최소화할 방법이 필요했다. 이후 누리랩 대다수 보안 라이브러리는 REST API 방식을 채택하게 되었고 필요에 따라 도커를 통해 업체 장비에 임베딩하는 형태로 개발되기도 한다. REST API...
Kei Choi's profile imageKei Choi
2020-04-19 12:00
-
디스크 이미지 파일 포맷 - ISO
개요 ISO 이미지(ISO image)는 국제 표준화 기구(ISO)가 제정한 광학 디스크의 압축 파일(디스크 이미지)이다1. 최근 이메일을 이용한 첨부 파일 형태의 공격 중 iso를 이용한 형태가 급증하고 있다. 결국 ISO 파일 내부에 존재하는 별도의 파일을 추출해야지만 악성코드를 탐지할 수 있다. ISO 구조 ISO 파일은 디스크 이미지인 만큼 섹터 단위로 구성되어 있다. 하나의 섹터의 크기는 2048(0x800) Byte이다2. ISO 구조를 해석하기 위해서는 볼륨 디스크립터부터 해석을 해야 하며 16 섹터에 위치하고 있다. 볼륨 디스크립터 구조 볼륨 디스크립터에서 볼 수 있듯이...
Kei Choi's profile imageKei Choi
2020-04-04 09:00
-
누리랩 기술 블로그를 오픈합니다.
안녕하세요. 누리랩 대표 최원혁입니다. 이번에 누리랩 기술 블로그를 오픈하게 되어 너무나 기쁩니다. 2011년 개인사업자로 누리랩을 창업하면서 다양한 악성코드 분석을 위한 도구를 공개용으로 만들어 배포한 적이 있습니다. 그 중 HwpScan2는 아직도 악성코드를 분석하시는 분들에게는 사랑받는 도구로 자리매김을 하고 있습니다. 그동안 누리랩 사업이 커지면서 누리랩이 가진 기술을 프로그램으로만 만들어 보급하기에는 현실적이지 못하다는 판단을 내렸습니다. 그런 이유로 누리랩의 다양한 기술을 기술 블로그를 통해 공개하는 것이 더 현실적이라는 결론에 도달하였습니다. 비정기적이겠지만 누리랩 기술 중 오픈할 수 있는 내용들을 최대한...
Kei Choi's profile imageKei Choi
2020-03-30 12:00